import request from '../../utils/request'

Page({

  /**
   * 页面的初始数据
   */
  data: { 
    bannerList:[],//轮播图数据
    recommendList:[],//推荐歌曲数据
    topList:[],//排行榜数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:async function (options) {
    /**
     * 轮播图数据
     */
    let bannerListData = await request('/banner',{type:2});
    this.setData({
      bannerList:bannerListData.banners
    })

    /**
     * 推荐歌曲数据
     */
    let recommendData = await request('/personalized',{limit:10}) //请求10条数据
    this.setData({
      recommendList:recommendData.result
    })
  //  console.log(this.data.recommendList)

  /**
   * 排行榜数据
   * 需求分析：
   *    1.根据idx的值获取对应的数据
   *    2.idx 的取值范围是 0-20 条, 我们需要 0-4 条
   *    3.需要发送5次网络请求
   */
let index = 0;//获取 5 条数据
let resultArr = []; //热爱数据
//只要获取 5 条数据
while(index < 5){
  let topListData = await request('/toplist/detail', {idx: index++});
  //slice 截取数据 (不会修改原数组) 截取三条数据
  // let topListItem = {name: topListData.list.name, tracks: topListData.list.tracks.slice(0, 3)}; 截取报错(因为没对象)
  let topListItem = {name: topListData.list.name, tracks: topListData.list.tracks};
  resultArr.push(topListItem);
  //不需要等待五次请求全部结束才更新，用户体验较好，但是渲染次数会多一些 
  this.setData({
    topList:resultArr
  })
 } 
//更新topList 的状态值，放在此处更新会导致请求的过程中页面长时间白屏，用户体验差
// this.setData({
//   topList:resultArr
// })
  },

  //跳转到 recommendSongr 页面
  toRecommendSong(){
    wx.navigateTo({
      url: '/pages/recommendSong/recommendSong',
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  }
})